package com.esteel.settlement.pa.packet;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotEmpty;

/**
 * 请求包：交易网－> 监管系统
 * 交易网发起 子账户复核支付
 * zhouwentong
 */
@XmlRootElement(name="Result") 
@XmlAccessorType(XmlAccessType.FIELD)
public class SubAccountReviewPayPB1328 extends PaPacket{
	
	public static int Pay=1;//申请支付
	public static int PayCancel=2;//撤销支付
	
	private static final long serialVersionUID = -7807065064103615153L;
	//资金汇总账号
	@XmlElement(name="SupAcctId")
	@Length(max=32)
	@NotEmpty
	private String supAcctId;
	//功能标志     1：申请支付 2：撤销支付
	@XmlElement(name="FuncFlag")
	private int funcFlag;
	//转出子账户
	@XmlElement(name="OutCustAcctId")
	@Length(max=32)
	@NotEmpty
	private String outCustAcctId;
	//转出会员代码
	@XmlElement(name="OutThirdCustId")
	@Length(max=32)
	@NotEmpty
	private String outThirdCustId;
	//转入子账户
	@XmlElement(name="InCustAcctId")
	@Length(max=32)
	@NotEmpty
	private String inCustAcctId;
	//转入会员代码
	@XmlElement(name="InThirdCustId")
	@Length(max=32)
	@NotEmpty
	private String inThirdCustId;
	//支付金额
	@XmlElement(name="TranAmount")
	private double tranAmount;
	//手续费金额
	@XmlElement(name="HandFee")
	private double handFee;
	//币种  默认：RMB
	@XmlElement(name="CcyCode")
	@Length(max=3)
	@NotEmpty
	private String ccyCode;
	//支付指令号
	//根据该字段判断是否指令重复
	@XmlElement(name="PaySerialNo")
	@Length(max=20)
	@NotEmpty
	private String paySerialNo;
	//支付订单号
	@XmlElement(name="ThirdHtId")
	@Length(max=30)
	@NotEmpty
	private String thirdHtId;
	//支付订单内容
	@XmlElement(name="ThirdHtCont")
	@Length(max=500)
	private String thirdHtCont;
	//备注
	@XmlElement(name="Note")
	@Length(max=120)
	private String note;
	
	
	public String getSupAcctId() {
		return supAcctId;
	}
	public void setSupAcctId(String supAcctId) {
		this.supAcctId = supAcctId;
	}
	public int getFuncFlag() {
		return funcFlag;
	}
	public void setFuncFlag(int funcFlag) {
		this.funcFlag = funcFlag;
	}
	public String getOutCustAcctId() {
		return outCustAcctId;
	}
	public void setOutCustAcctId(String outCustAcctId) {
		this.outCustAcctId = outCustAcctId;
	}
	public String getOutThirdCustId() {
		return outThirdCustId;
	}
	public void setOutThirdCustId(String outThirdCustId) {
		this.outThirdCustId = outThirdCustId;
	}
	public String getInCustAcctId() {
		return inCustAcctId;
	}
	public void setInCustAcctId(String inCustAcctId) {
		this.inCustAcctId = inCustAcctId;
	}
	public String getInThirdCustId() {
		return inThirdCustId;
	}
	public void setInThirdCustId(String inThirdCustId) {
		this.inThirdCustId = inThirdCustId;
	}
	public double getTranAmount() {
		return tranAmount;
	}
	public void setTranAmount(double tranAmount) {
		this.tranAmount = tranAmount;
	}
	public double getHandFee() {
		return handFee;
	}
	public void setHandFee(double handFee) {
		this.handFee = handFee;
	}
	public String getCcyCode() {
		return ccyCode;
	}
	public void setCcyCode(String ccyCode) {
		this.ccyCode = ccyCode;
	}
	public String getPaySerialNo() {
		return paySerialNo;
	}
	public void setPaySerialNo(String paySerialNo) {
		this.paySerialNo = paySerialNo;
	}
	public String getThirdHtId() {
		return thirdHtId;
	}
	public void setThirdHtId(String thirdHtId) {
		this.thirdHtId = thirdHtId;
	}
	public String getThirdHtCont() {
		return thirdHtCont;
	}
	public void setThirdHtCont(String thirdHtCont) {
		this.thirdHtCont = thirdHtCont;
	}
	public String getNote() {
		return note;
	}
	public void setNote(String note) {
		this.note = note;
	}
	@Override
	protected String[] order() {
		String[] args={"supAcctId","funcFlag","outCustAcctId","outThirdCustId","inCustAcctId","inThirdCustId","tranAmount","handFee","ccyCode","paySerialNo","thirdHtId","thirdHtCont","note","reserve"};
		return args;
	}
	@Override
	protected String tranFunc() {
		return "1328";
	}
}
